

"""
eval & json 的使用


eval:可以将字符串当作代码来运行的，然后返回结果
eavl 很强大，但是它很危险，它会偷偷的运行修改你的文件
"""

# a = '1+2'
# print(a)   #返回1+2
# print(eval(a))   #返回3   # 将自负床当作代码给运行出来了
#
# expr = '5*3'
# a = eval(expr)
# print(a)




"""
json： json是一种通用的数据格式，常用于网页 APP之间的传输数据
{"name":"小明","age":12}
"""

# import json

#把python的字典  转换成Json字符串   dumps

#在python 中，字典是可以使用单引号的，但是呢 json必须使用双引号  dumps会自动的帮你修改
# data  = {'name':"小红",'age':10}
# json_str = json.dumps(data)   #创建一个变量 json_str来接收 json 内置函数中的 dumps 方法 将 data 字典转换成json字符串
# print(json_str)
# print(type(json_str))


# 把json字符串  变成 poython 字典 用   loads
#
# s = '{"name":"xiaolan","age":11}'
#
# data = json.loads(s)
# print(data)
# print(type(data))


# 存文件 or 从文件读

# import json
# #存数据到文件
#
# info = {'fruit':'苹果','count':5}
#
# with open('data.json','w',encoding='utf-8') as f:
#     json.dump(info,f,ensure_ascii=False)


"""
# open('data.json','w',encoding='utf-8') as f:
open 打开以 w  写的模式打开或者创建一个文件（'data.json'）并使用 encoding 来指定了编码格式是 utf-8 
as f 将打开的文件对象赋值给f 在后续的代码进行使用
whit 确保在执行完代码之后，将文件自动的关闭，，即使在写入的过程中，发生错误，也可以保证文件能够正常的关闭，避免数据丢失
ensure_ascii=False 让中文正常的显示，避免乱码
"""

# import json
# #从文件到数据
#
#
#
# with open('data.json','r',encoding='utf-8') as f:
#     info = json.load(f)
# print(info)





"""
eval & json的区别
eval: 把字符串当作代码来运行，json把自负床当数据转换
eval: 不安全的（可能删除文件）json是安全的（只认数据，不运行代码）
eval： 初学者不建议使用   json 多用
"""